﻿// 3693. 括号匹配.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <algorithm>
#include <stack>
#include <string>


using namespace std;
/*
https://www.acwing.com/problem/content/3696/


苗苗今天刚刚学会使用括号，不过他分不清小括号，中括号，大括号和尖括号，不知道怎么使用这些括号，请帮助他判断括号使用是否正确。

输入格式
共一行，包含一个由 <,(,{,[,>,),},] 构成的字符串。

输出格式
如果输入的字符串中的括号正确匹配则输出 yes，否则输出 no。

数据范围
输入字符串长度不超过 10000。

输入样例：
(){}
输出样例：
yes
*/


string s;
stack<char> st;


int main()
{
	cin >> s;

	for (int i = 0; i < s.size(); i++) {
		if (s[i] == '(' || s[i] == '{' || s[i] == '[' || s[i] =='<') {
			st.push(s[i]);
		}
		else if (s[i] == ')' && !st.empty() && st.top() == '(') {
			st.pop();
		}
		else if (s[i] == '}' && !st.empty() && st.top() == '{') {
			st.pop();
		}
		else if (s[i] == ']' && !st.empty() && st.top() == '[') {
			st.pop();
		}
		else if (s[i] == '>' && !st.empty() && st.top() == '<') {
			st.pop();
		}
		else {
			cout << "no" << endl;
			return 0;
		}
	}

	if (st.empty()) {
		cout << "yes" << endl;
	}
	else {
		cout << "no" << endl;
	}

	return 0;
}

 